1. Field of the Invention
The present invention relates to a brushless direct current (BLDC) motor. More particularly, the present invention relates to a circuit and a method for controlling the rotating speed of a BLDC motor.
2. Description of the Related Art
FIG. 1 is a schematic diagram showing a conventional BLDC motor and its drive circuit. The BLDC motor includes a rotor 102 and stator coils P1-P4. Rotor 102 is a permanent magnet with two magnetic north poles (N1 and N2) and two magnetic south poles (S1 and S2). The position of Hall sensor HS is fixed relative to stator coils P1-P4. Hall sensor HS provides a Hall sensor signal whose state changes in response to the position of rotor 102 relative to stator P1-P4. In particular, the Hall sensor signal is high (logic 1) when N1 or N2 is the closer to Hall sensor HS among the magnetic poles, while the Hall sensor signal is low (logic 0) when S1 or S2 is the closer to Hall sensor HS among the magnetic poles.
Control circuit 101 drives the BLDC motor by turning on and turning off the metal oxide semiconductor field effect transistors (MOSFETs) Q1-Q4 according to the Hall sensor signal. The level shifters LS amplify the output of control circuit 101 in order to drive the high-side MOSFETs Q1 and Q2. When magnetic pole S1 is near stator coil P1, N1 is the closest to Hall sensor HS among the magnetic poles. Therefore the Hall sensor signal is high, control circuit 101 turns off MOSFETs Q2 and Q3, turns on Q1 and Q4, and the motor current flows through Q1, PA, P4, P1, P2, P3, PB and finally through Q4, turning stator coils P1 and P3 into magnetic south poles and stator coils P2 and P4 into magnetic north poles. At this moment P1 and P3 attract the north poles N1 and N2 and repel the south poles S1 and S2. P2 and P4 attract the south poles and repel the north poles. The rotor spins counter-clockwise. On the other hand, when magnetic pole N1 moves to right under stator coil P1, S2 is the closest to Hall sensor HS among the magnetic poles. Therefore the Hall sensor signal is low, control circuit 101 turns off MOSFETs Q1 and Q4, turns on Q2 and Q3, and the motor current flows through Q2, PB, P3, P2, P1, P4, PA and finally through Q3, turning stator coils P1 and P3 into magnetic north poles and stator coils P2 and P4 into magnetic south poles. At this moment P1 and P3 repel the north poles and P2 and P4 attract the north poles. As a result, the BLDC motor is driven continuously in the counter-clockwise direction.
It is usually preferable to be able to control the rotating speed of a motor. For example, in light load conditions the rotating speed may be lowered to save energy and reduce noises. FIG. 2 is a schematic diagram showing such a solution. The pulse width modulation (PWM) circuit 202 provides a PWM signal according to a given duty cycle setting. Logic circuit 203 distributes the PWM signal to MOSFETs Q1 and Q4 when the Hall sensor signal from Hall sensor HS is high and distributes the PWM signal to MOSFETs Q2 and Q3 when the Hall sensor signal is low. The level shifters LS amplify the PWM signal in order to drive the high-side MOSFETs Q1 and Q2. Motor 204 is a representation which includes rotor 102 and stator coils P1-P4 in FIG. 1.
PWM circuit 202 includes a clock and ramp generator 201, a comparator 205 and a flip-flop 206. Clock and ramp generator 201 provides a ramp signal to comparator 205 and a clock signal to flip-flop 206. Flip-flop 206 receives the clock signal at the “set” terminal S, receives the output of comparator 205 at the “reset” terminal R, and outputs the PWM signal. At the beginning of each cycle of the clock signal the PWM signal is set to the high state. Comparator 205 compares the ramp signal and the duty cycle setting, which is a voltage signal. When the level of the ramp signal is higher than the duty cycle setting, comparator 205 asserts its output and the PWM signal is reset to the low state. The higher the duty cycle setting, the longer the duty cycle of the PWM signal.
FIG. 3 shows the waveforms of the Hall sensor signal and the motor current of motor 204. When the Hall sensor signal is high, MOSFETs Q1 and Q4 are turned on, MOSFETs Q2 and Q3 are turned off, and the direction of the motor current is from PA to PB. When the Hall sensor signal is low, MOSFETs Q2 and Q3 are turned on, MOSFETs Q1 and Q4 are turned off, and the direction of the motor current is from PB to PA. The duty cycle of the motor current is determined by the widths of the pulses. As an example, the duty cycle of the motor current is 0.25 from the moment T1 to the moment T3, while the duty cycle of the motor current is 0.5 from the moment T3 to the moment T6. As shown in FIG. 3, the pulse width corresponding to a duty cycle of 0.5 is twice as large as the pulse width corresponding to a duty cycle of 0.25. The higher the duty cycle, the longer the motor current flows, thus the higher the torque and the rotating speed. It can be easily seen that the PWM signal and the motor current have the same duty cycle. Here the duty cycle of the motor current is the proportion of each cycle where the motor current is non-zero. PWM circuit 202 controls the duty cycle of the PWM signal according to its duty cycle setting, which controls the motor current and the rotating speed of motor 204.
FIG. 4A is a plot of torque vs. rotating speed of BLDC motors and their loads. There are three motor characteristic curves (410, 412 and 414) and three load characteristic curves (422, 424 and 426). The unit for torque is oz-in (ounce per inch) and the unit for rotating speed is RPM (revolutions per minute).
A traditional BLDC motor driven by a PWM signal, such as motor 204 in FIG. 2, has characteristic curves similar to the curves 410, 412 and 414 in FIG. 4A. Motor curves 410, 412 and 414 correspond to different duty cycles of the motor current (1.0, 0.8 and 0.6, respectively). Given a constant duty cycle, the torque provided by a DC motor gradually decreases as its rotating speed increases. On the other hand, load curves 422, 424 and 426 correspond to different load conditions (light load, medium load and heavy load, respectively). When the load condition is constant, it takes a higher torque to drive the load to a higher speed. A DC motor and a load operate at the intersection of their characteristic curves. For example, when a motor corresponding to curve 414 is coupled to a load corresponding to curve 422, they operate at intersection point A, which is located at a torque of 20 oz-in and a rotating speed of 1500 RPM. If the duty cycle of the motor current or the load condition changes, the intersection point moves accordingly.
One of the drawbacks of motor 204 in FIG. 2 is that, when the rotating speed is low and the load becomes heavy suddenly, motor 204 may slow down drastically, even stall completely. For example, imagine a car driven by motor 204 with a duty cycle of 0.6 (motor curve 414). Initially the car is on level ground and the load corresponds to curve 422. The intersection point is A, and the rotating speed is 1500 RPM. And then the car comes to an up slope. The load condition suddenly changes from curve 422 to curve 424. The intersection point moves from A to B and the rotating speed drops to about 750 RPM. And then the slope gets steeper. The load condition changes to curve 426. The operating point moves from B to S. In this case, motor 204 simply stalls because curves 414 and 426 do not intersect.